package com.huahai.api;

import com.huahai.api.imagesearch.sub.GetImageFirstUrlApi;
import com.huahai.api.imagesearch.sub.GetImageListApi;
import com.huahai.api.imagesearch.sub.GetImagePageUrlApi;
import com.huahai.api.imagesearch.model.ImageSearchResult;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * 以图搜图API门面模式 （搜索相似图片，门面模式减少团队api协作调用压力）
 * @author huahai
 */
@Slf4j
public class ImageSearchApiFacade {

    /**
     * 搜索图片
     *
     * @param imageUrl 要查找的图片url
     * @return 相似图片列表
     */
    public static List<ImageSearchResult> searchImage(String imageUrl) {
        // 调用GetImagePageUrlApi类的getImagePageUrl方法，获取图片页面的url
        String imagePageUrl = GetImagePageUrlApi.getImagePageUrl(imageUrl);
        // 调用GetImageFirstUrlApi类的getImageFirstUrl方法，获取图片第一个url
        String imageFirstUrl = GetImageFirstUrlApi.getImageFirstUrl(imagePageUrl);
        // 调用GetImageListApi类的getImageList方法，获取相似图片列表
        return GetImageListApi.getImageList(imageFirstUrl);
    }

    public static void main(String[] args) {
        // 测试以图搜图功能
        String imageUrl = "https://huahai-picture-1370110813.cos.ap-guangzhou.myqcloud.com//public/1945677813630205954/2025-07-23_lxOeU0ZN.jpg";
        List<ImageSearchResult> resultList = searchImage(imageUrl);
        System.out.println("结果列表" + resultList);
    }
}
